package org.biz.common;

public class CertificateNumberUtils {
    /**
     * 处理证书编号规则：
     * 1. 提取字符串中的连续数字
     * 2. 纯数字不足5位时前补零
     * 3. 无数字时返回原字符串
     */
    public static String processCertificateNum(String input) {
        if (input == null || input.isEmpty()) {
            return "";
        }

        // 提取所有连续数字
        String numbers = extractNumbers(input);

        if (numbers.isEmpty()) {
            return input; // 无数字返回原字符串
        }

        // 数字补零处理
        return padWithZeros(numbers);
    }

    private static String extractNumbers(String str) {
        StringBuilder sb = new StringBuilder();
        for (char c : str.toCharArray()) {
            if (Character.isDigit(c)) {
                sb.append(c);
            }
        }
        return sb.toString();
    }

    private static String padWithZeros(String numStr) {
        try {
            int num = Integer.parseInt(numStr);
            return String.format("%05d", num);
        } catch (NumberFormatException e) {
            return numStr; // 超大数字保持原样
        }
    }
}
